package cn.tedu.hm.service.impl;

import cn.tedu.hm.ex.ServiceException;
import cn.tedu.hm.mapper.OpinionMapper;
import cn.tedu.hm.pojo.dto.OpinionAddNewDTO;
import cn.tedu.hm.pojo.vo.OpinionListItemVO;
import cn.tedu.hm.pojo.vo.OpinionStandardVO;
import cn.tedu.hm.pojo.vo.RoomStandardVO;
import cn.tedu.hm.pojo.vo.ServiceListItemVO;
import cn.tedu.hm.service.IOpinionService;
import cn.tedu.hm.wep.JsonPage;
import cn.tedu.hm.wep.ServiceCode;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;


/**
 * tj41h
 */
@Slf4j
@Service
public class OpinionServiceImpl implements IOpinionService {

    @Autowired
    private OpinionMapper opinionMapper;

    @Override
    public void add(OpinionAddNewDTO opinionAddNewDTO) {
        log.debug("开始处理新增顾客意见的业务，参数：{}", opinionAddNewDTO);
        int rows = opinionMapper.insert(opinionAddNewDTO);
        if (rows !=1) {
            // 是：抛出异常
            String message = "新增顾客意见失败！";
            log.warn(message);
            throw new ServiceException(ServiceCode.ERROR_INSERT, message);
        }
    }


    @Override
    public JsonPage<OpinionListItemVO> list(Integer page, Integer pageSize) {
        log.debug("开始处理【顾客意见列表】的业务,参数:{},{}",page,pageSize);
        PageHelper.startPage(page,pageSize);
        List<OpinionListItemVO> list = opinionMapper.list();
        if (list == null) {
            // 是：抛出异常
            String message = "数据不存在！";
            log.warn(message);
            throw new ServiceException(ServiceCode.ERROR_NOT_FOUND, message);
        }
        return JsonPage.restPage(new PageInfo<>(list));
    }

    @Override
    public JsonPage<OpinionStandardVO> getStandardByType(String type, Integer page, Integer pageSize) {
        log.debug("开始处理【根据类型查询顾客意见】的业务，参数：{}", type);
        PageHelper.startPage(page,pageSize);
        List<OpinionStandardVO> result = opinionMapper.getStandardByType(type, page, pageSize);
        if (result==null){
            String message = "数据不存在";
            log.warn(message);
            throw new ServiceException(ServiceCode.ERROR_NOT_FOUND, message);
        }
        return JsonPage.restPage(new PageInfo<>(result));
    }
}
